package br.com.sadim.dao;

import java.util.List;

import br.com.sadim.hospital.ProcedimentoConsulta;
import br.com.sadim.hospital.Usuario;
import org.hibernate.Query;
import org.hibernate.Session;

public class UsuarioDAOHibernate implements UsuarioDAO {
	
	private Session session;
	public void setSession(Session s) {
		session = s;
	}

	@Override
	public void save(Usuario user) {
		session.save(user);
	}

	@Override
	public void delete(Usuario user) {
		session.delete(user);
	}

	@Override
	public void update(Usuario user) {
		session.update(user);
	}

	@Override
	public void merge(Usuario user) {
		session.merge(user);
		
	}
	
	@Override
	public Usuario getById(Integer idUsuario) {
		return (Usuario) session.get(Usuario.class, idUsuario);
	}

	@Override
	public Usuario getByLogin(String login) {
		String hql = "SELECT U FROM br.com.sadim.hospital.Usuario U WHERE U.login = :param";
		Query consulta = session.createQuery(hql);
		consulta.setString("param", login);
		
		return (Usuario) consulta.uniqueResult();
	}

	@SuppressWarnings("unchecked")
	@Override
	public List<Usuario> getList() {
		return session.createCriteria(Usuario.class).list();
	}

}
